The present invention is related to error-code correction that generally allows for errors that arise during transmission, storage, and retrieval of electronic data to be detected and, in many cases, to be corrected. Many linear-block-encoding error-control coding methods and techniques are well known for encoding serially transmitted data that can be broken up into k-length messages. In general, the storage models for data to which the currently available error-control coding techniques are applied are linear and 2-dimensional arrangements of words within a storage device. Techniques have been developed for recognizing and correcting certain types of errors in 2-dimensional memories, including criss-cross errors, described in a following subsection. Many of these techniques employ systematic linear codes, also described below. A number of these methods are described in “Theory of Codes with Maximum Rank Distance,” Gabidulin, Probl. Peredach. Inform., 21, pp. 3–16 (1985); “Optimal Array Error-Correcting Codes,” Gabidulin, Probl. Peredach. Inform., 21, pp. 102–106 (1985); and “Reduced-Redundancy Product Codes for Burst Error Correction,” Roth and Seroussi, IEEE Trans. Inform. Theory, 44, pp. 1395–1406(1998).
Recently, a new class of 3-dimensional storage devices has been developed. It is anticipated that the failures modes for this class of 3-dimensional storage devices will require an efficient, 3-dimensional-data error-control coding technique that provides high ratios of data words to the total number of words of encoded data stored within the 3-dimensional data storage media, in order to provide a greater maximum storage capacity within a 3-dimensional data-storage device of a given size.